<?php

/**
 * Класс RL_View -- вюъхи
 *
 * @package RL
 * @author Lucky <lucky@jetstyle.ru>
 * @version $Id: View.php 72 2007-09-10 11:07:47Z lucky $
 */
abstract class RL_View
{
	/**
	 * name имя въюхи обязательно
	 *
	 * @var string
	 * @access public
	 */
	public $name = '';

	public $data = array();

	public function __construct ($ctx)
	{
		$this->ctx = $ctx;
		$this->init();
	} // end of __construct

	public function init ()
	{
	} // end of function init
	//!a constructor
	/**
	 * create создать представление
	 *
	 * @param mixed $type тип
	 * @access public
	 * @return RL_View
	 */
	static public function create ($ctx, $type)
	{
		$cls = __CLASS__ . '_' . $type;
		$ctx->rh->useClass($cls);
		$view = new $cls($ctx);
		return $view;
	} // end of function create

	public function getVars ()
	{
		return $this->data;
	} // end of function getVars

	public function getName ()
	{
		return $this->name;
	} // end of function getName

	public function getValue ()
	{
		return $this;
	} // end of function getName

	public function getMeta ()
	{
		if (!isset($this->meta)) {
			$this->meta = $this->buildMeta();
		}
		return $this->meta;
	} // end of function getMeta

	public function setMeta ($value)
	{
		$this->meta = $value;
		return $this;
	} // end of function setMeta

	public function buildMeta ()
	{
		$this->ctx->rh->useClass('RL_Meta');
		$meta = new RL_Meta($this->ctx);
		$this->meta->setObject($this);
		return $meta;
	} // end of function buildMeta

	abstract public function getContent ();

}

